import { Context, Next } from 'koa';
import { utils } from '../utils/utils';

/**
 * 自动注入 X-Request-Id 中间件
 */
export async function requestIdMiddleware(ctx: Context, next: Next): Promise<void> {
  // 从请求头获取或生成新的 requestId
  const requestId = ctx.get('X-Request-Id') || utils.generateUUID();
  
  // 设置到响应头
  ctx.set('X-Request-Id', requestId);
  
  // 存储到 state 中供后续使用
  ctx.state.requestId = requestId;
  
  await next();
}

